Vamos ilustrar o conceito de Computação em Nuvem com o exemplo do Microsoft Windows
Azure que é um tipo de PaaS. Esta
tecnologia provê serviços computacionais baseados em nuvem e sob demanda, como vimos
anteriormente. Cada aplicação
desenvolvida no Windows Azure é executado em uma ou mais máquinas virtuais. O objetivo
principal desta tecnologia é prover
escalabilidade massiva. Para isso o Windows Azure cria diferentes instâncias iguais que
executam o mesmo tipo de tarefas. Ao
contrario do caminho mais intuitivo, que seria aumentar ao máximo a capacidade de cada
máquina virtual, onde é executada cada
aplicação, o Windows Azure procura instanciar diversas máquinas virtuais executando o mesmo
serviço replicado, garantindo uma
maior confiabilidade.
Cada máquina física neste sistema possui uma Fabric, que faz o papel de hipervisor, e o Fabric
Controller, que é a ferramenta de
acesso a este hipervisor. As instâncias dos seu servidor são chamadas de "Roles" Os Roles são
classificados em três tipos:
Instância especializada em receber e tratar requisições "http". Sendo assim, cada web role
possui toda a estrutura necessária
para processar tais requeisições, pois é executado sobre o Microsoft Internet Information Services
(IIS). As requisições são feitas
sobre um mesmo DNS e são conduzidas até o "Load Balancer" (Balanceador de Carga), que
distribui as requisições por diferentes
Web Roles da mesma aplicação de modo a não distribuir o processamento, uma vez que cada
Web Role é executado sobre uma
máquina virtual diferente. Quando o Web Role recebe uma requisição que requer um
processamento maior, que deve ser executado
em background, ele envia uma requisição à um Worker Role através das Queues (filas).
Instâncias focadas em acesso "não http". Em geral Worker Role processa persistentemente
todos os perdidos armazenados pelos
Web Roles nas Queues. Este tipo de aplicação é o chamado Queue Poling Worker. O Worker
Role é responsável por realizar as
tarefas mais lentas, mas em alguns casos especiais podem, assim como os Web Roles, se
comunicar com outros nós, como ,por
exemplo, o Listening Worker Role, que pode ser um servidor de um jogo por exemplo, que recebe
conexões TCP e nem por isso
deixa de realizar um serviço lento e custoso. Existe também um terceiro tipo, o External Process
Worker Role, que pode ser ,por
exemplo, um servidor SQL, acessado remotamente.
Instâncias diferenciadas, que dão acesso in geral ao usuário do sistema operacional.
Diferentemente dos Web e Worker Roles, o
Fabric Controller não vai executar as rotinas de replicação para este tipo de Role. Ele é um Role
diferenciado, instanciado com outro
tipo de finalidade. É um ambiente que pode ser destinado à migrar as aplicações desejadas para
aplicações Windows Azure, uma
vez que o VM Role é capaz de simular os mesmos ambientes do Web ou do Worker Role.
A figura abaixo ilustra o esquema mais comum, o Queue Poling Worker.